Method and apparatus for PUF generator characterization

ABSTRACT

Disclosed is a physical unclonable function generator circuit and testing method. In one embodiment, a testing method for physical unclonable function (PUF) generator includes: verifying a functionality of a PUF generator by writing preconfigured logical states to and reading output logical states from a plurality of bit cells in a PUF cell array; and determining whether the PUF generator is a qualified PUF generator based on whether one or more predefine quality criteria is satisfied.

BACKGROUND

A physically unclonable function (PUF) generator is a physical structuregenerally within an integrated circuit that provides a number ofcorresponding outputs (e.g., responses) in response to inputs (e.g.,challenges/requests) to the PUF generator. A unique identity of theintegrated circuit may be established by such challenge-response pairsprovided by the PUF generator. With the establishment of the identity,secure communication can be guaranteed. The PUF generator can also beused for existing authentication purposes to replace the current methodof assigning an identity to an electronic device. Since the PUFgenerator is based on intrinsic properties of a manufacturing process,the PUF has various advantages over conventional authenticationapproaches that inscribes an identity on a device which may be mimickedand/or reverse engineered more easily.

For quality-control purposes, testing of functionalities of PUFgenerators after manufacturing is required to determine qualified PUFgenerators and categorize qualified PUF generators according to theirrepeatability and uniqueness. There exists a need to develop a method tocharacterize PUF generators for quality-control purposes at high speedand at low cost in order to identify defective PUF generators, tocategorize qualified PUF generators, and to provide insights of themanufacturing processes.

BRIEF DESCRIPTION OF THE DRAWINGS

Aspects of the present disclosure are best understood from the followingdetailed description when read with the accompanying figures. It isnoted that various features are not necessarily drawn to scale. In fact,the dimensions and geometries of the various features may be arbitrarilyincreased or reduced for clarity of illustration.

FIG. 1 illustrates an exemplary block diagram of a PUF generator, inaccordance with some embodiments of present disclosure.

FIG. 2 illustrates an exemplary circuit diagram of a PUF cell arraycomprising a plurality of bit cells, in accordance with some embodimentsof present disclosure.

FIG. 3 illustrates an exemplary circuit diagram of a bit cell that isimplemented as a 12-T SRAM bit cell, in accordance with some embodimentsof the present disclosure.

FIG. 4 illustrates an exemplary delay circuit to inject noise tointernal nodes of bit cells, in accordance with some embodiments of thepresent disclosure.

FIG. 5 illustrates waveforms of signals provided by a delay circuit to abit cell of a PUF cell array, in accordance with some embodiments of thepresent disclosure.

FIG. 6 illustrates a flow chart of a method to generate a masking mapusing a PUF cell array comprising a plurality of bit cells, inaccordance with some embodiments of present disclosure.

FIG. 7 illustrates a flow chart of a method to generate a golden mapusing a PUF cell array comprising a plurality of bit cells, inaccordance with some embodiments of the present disclosure.

FIG. 8 illustrates a flow chart of a method for a PUF generatorcharacterization, in accordance with some embodiments of presentdisclosure.

FIG. 9 illustrates an exemplary masking map and golden map comparisonprocess to obtain a critical masking map, in accordance with someembodiments of the present disclosure.

FIG. 10 illustrates a flow chart of a method to generate a PUF signatureusing a qualified PUF generator that passes the quality control tests,in accordance with some embodiments of present disclosure.

FIG. 11 illustrates a flow chart of a method to transfer a PUF signatureto a server from a qualified PUF generator that passes a quality controltests, in accordance with some embodiments of present disclosure.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS

The following disclosure describes various exemplary embodiments forimplementing different features of the subject matter. Specific examplesof components and arrangements are described below to simplify thepresent disclosure. These are, of course, merely examples and are notintended to be limiting. For example, it will be understood that when anelement is referred to as being “connected to” or “coupled to” anotherelement, it may be directly connected to or coupled to the otherelement, or one or more intervening elements may be present.

It is understood that even though each of the bit cells in a PUF cellarray and even each of the devices within the same bit cell aremanufactured using the same process, one or more manufacturingvariabilities may still cause each bit cell of the SRAM device to beunique and one of its uniqueness is intrinsically tend to be at a highstate (i.e., a logic “1”) or at a low state (i.e., a logic “0”) whilethe bit cell is accessed. In other words, each bit cell may have anintrinsic tendency to present either a logic “1” or a logic “0”, andmoreover, some bit cells may have a strong intrinsic tendency and somebit cells may have a weak intrinsic tendency. Intrinsic tendencies ofeach bit cell can be different, which are caused by variations inparameters through a fundamentally non-uniform manufacturing process.This intrinsic tendency may be used to determine whether such a bit cellis suitable (i.e., strong tendency to generate a logical state either“1” or “0”) to provide a reliable PUF signature. When a bit cell has astrong intrinsic tendency, the bit cell may remain at its “preferred”logical state for a longer time or transition to its “preferred” logicalstate very quickly and/or at a statistically higher frequency when thememory-based PUF generator is accessed. In some embodiments, such a bitcell may be referred to as a “stable bit cell”. When a bit cell has aweak intrinsic tendency, the bit cell does not have a “preferred”logical state. That is, the bit cell with weak intrinsic tendency maysometimes present (e.g., remain at or transition to) a high state andsometimes present (e.g., remain at or transition to) a low state withoutstatistic preference when the memory-based PUF generator is accessed. Insome embodiments, such a bit cell may be referred to as an “unstable bitcell”. An ideal PUF generator comprises no unstable bit cells. Further,a PUF generator should give a repeatable response every time it ischallenged. That is, the Intra-Humming Distance (HD) of responses, whichis used to describe the repeatability of a PUF generator, should be asclose to 0 as possible. Intra-HD of 0 indicates the PUF generator isperfectly repeatable. At the same time, PUF generators and theirresponses should be as different as possible. Thus, the Inter-HD ofresponses, which is used to describe the uniqueness of a PUF generator,should be as close to 50% as possible. If Inter-HD of all responses are50% then each PUF generator is unique. This disclosure presents variousembodiments of a quality control testing method and apparatus for PUFgenerators.

FIG. 1 illustrates an exemplary block diagram of a PUF generator 100, inaccordance with some embodiments of present disclosure. It is noted thatthe PUF generator 100 is merely an example, and is not intended to limitthe present disclosure. Accordingly, it is understood that additionalfunctional blocks may be provided in or coupled to the PUF generator 100of FIG. 1, and that some other functional blocks may only be brieflydescribed herein.

In the illustrated embodiment of FIG. 1, the PUF generator 100 comprisesa PUF cell array 102, which comprises a plurality of bit cells in thePUF cell array 102. The plurality of bit cells are arranged in acolumn-row configuration in which each column has a bit line (BL) and abit line bar (BLB), each row has a word line (WL) and a word line bar(WLB). More specifically, the BL and BLB of each column are respectivelycoupled to a plurality of bit cells that are disposed in that column,and each memory cell in that column is arranged on a different row andcoupled to a respective (different) WL and a respective (different) WLB.That is, each bit cell of the PUF cell array 102 is coupled to a BL of acolumn of the PUF cell array 102, a BLB of the column of the PUF cellarray 102, a WL of a row of the PUF cell array 102 and a WLB of a row ofthe PUF cell array 102. In some embodiments, the BL's and BLB's arearranged in parallel vertically and the WL's and WLB's are arranged inparallel horizontally (i.e., perpendicular to the BL's and BLB's). Insome embodiments, WL and WLB for each row of bit cells in the PUF cellarray 102 are connected together. In some embodiments, as discussed infurther detail in FIGS. 2 and 4, the PUF cell array 102 can furtherincludes a bit pre-charge line (BPC), a PUF output, and a PUF output barfor each row of bit cells. An illustrated embodiment of the PUF cellarray 102 will be provided in further detail below with reference toFIG. 2.

In one illustrated embodiment, each of the bit cells of the PUF cellarray 102 comprises a 14-transistors (14T) SRAM (Static Random AccessMemory) bit cell, which will be described in further detail below inFIG. 3. In some other embodiments, the bit cells of the PUF cell array102 may be implemented as any of a variety of types of memory cells suchas, for example, 2T-2R SRAM bit cell, 4T-SRAM bit cell, 8T-SRAM bitcell, leakage-based DRAM (Dynamic Random Access Memory) bit cells, etc.,according to some embodiments of present disclosure.

In the illustrated embodiment as shown in FIG. 1, the PUF generator 100further comprises a storage register 120, a comparing circuit 122, amask register 124, a masking circuit 126, and a shifted register 128. Insome embodiments, the comparing circuit 122 is a XOR gate (exclusivegate), which only outputs a logic 0, when all the inputs are equal. Asdescribed above, in some embodiments, the controller 112 is coupled tothe PUF cell array 102, storage registers 120, masking registers 124 andshifted registers 128, which are configured to control the coupledcomponents. In the illustrated embodiments, the PUF cell array 102 iscoupled to the storage registers 120, the comparing circuit 122, and themasking circuit 126 directly. In some embodiments, the comparing circuitis coupled to the masking registers 124, which is further coupled to themasking circuit 126 and the shifted registers 128. In some embodiments,the shifted registers 128 comprises a cascade of flip flops. In someembodiments, the shift registers 128 comprises at least the same numberof cells as PUF cells. The shift registers 128 are used to select thePUF cells used to generate the PUF signature bits based on only stronglybiased PUF cells for signature generation. In some embodiments, at theshift registers 128 select the bits that are not marked in the maskingmap (masking array). In some embodiments, the shift registers 128performs the filtering by only shifting out the first n bits that areneeded for a PUF signature. In some embodiments, it may filter the bitsby looking at the last n strongly biased bits, wherein n is the numberof bits needed for signature. In some embodiments, we can mark anynumbers of bits due to aging, as long as there is enough PUF bits thatcan continue to function.

The controller 112 configured to receive a request/challenge (e.g., arequest to power on the coupled PUF cell array 102, a request to accessthe PUF signature of the PUF cell array 102, etc.). In some embodiments,the controller 112 is also configured to receive a test/normal modeinput (e.g., switch between different operational modes). In someembodiments, the controller 112 is configured to transmit a responsebased on the logical states of the bit cells of the PUF cell array 102(e.g., a PUF output) to the masking 126 or the copy array 120 inresponse to the request. The controller 112 is configured to control(e.g., increase or decrease) a voltage level of a supply voltage appliedat each of the bit cells, control (e.g., increase or decrease) a voltagelevel applied at each of the WL and the WLB. In some embodiments, thecontroller 112 may enable the voltage supply to at least one selectedcolumn and at least one selected row. Further, the controller 112 mayswitch between the evaluation mode and the normal operation mode. Thecontroller 112 may also introduce noise. In some embodiments, thecontroller 112 may control a periodic reading of logical states of thebit cells. These are described in further detail below with respect toFIG. 4. In some alternative embodiments, the controller 112 may beimplemented as a separate block, which is not embedded in the PUF cellarray 102. In some embodiments, the controller 112 can be embedded inthe PUF cell array 102. In some embodiments, the timing control circuit114 provide control and synchronization on pulse signals during read andwrite processes.

The controller 112 further comprises a noise injector (not shown). Insome embodiments, the noise injector is controlled by the controller 112to introduce noise directly into the plurality of bit cells of the PUFcell array 102 to create “stressed” operation conditions. In someembodiments, such “stressed” operation conditions are used to expeditethe identification of unstable bit cells which do not provide constantlogical states in order to create a masking array.

In some embodiments, the controller 112 is a representative device andmay comprise a processor, a memory, an input/output interface, acommunications interface, and a system bus. The processor may compriseany processing circuitry operative to control the operations andperformance of the controller 112 of the PUF generator 100. In variousaspects, the processor may be implemented as a general purposeprocessor, a chip multiprocessor (CMP), a dedicated processor, anembedded processor, a digital signal processor (DSP), a networkprocessor, an input/output (I/O) processor, a media access control (MAC)processor, a radio baseband processor, a co-processor, a microprocessorsuch as a complex instruction set computer (CISC) microprocessor, areduced instruction set computing (RISC) microprocessor, and/or a verylong instruction word (VLIW) microprocessor, or other processing device.The processor also may be implemented by a controller, amicrocontroller, an application specific integrated circuit (ASIC), afield programmable gate array (FPGA), a programmable logic device (PLD),and so forth.

In various aspects, the processor may be arranged to run an operatingsystem (OS) and various applications. Examples of an OS comprise, forexample, operating systems generally known under the trade name of AppleOS, Microsoft Windows OS, Android OS, and any other proprietary or opensource OS.

In some embodiments, at least one non-transitory computer-readablestorage medium is provided having computer-executable instructionsembodied thereon, wherein, when executed by at least one processor, thecomputer-executable instructions cause the at least one processor toperform embodiments of the methods described herein. Thiscomputer-readable storage medium can be embodied in the memory.

In some embodiments, the memory may comprise any machine-readable orcomputer-readable media capable of storing data, including bothvolatile/non-volatile memory and removable/non-removable memory. Thememory may comprise at least one non-volatile memory unit. Thenon-volatile memory unit is capable of storing one or more softwareprograms. The software programs may contain, for example, applications,user data, device data, and/or configuration data, or combinationstherefore, to name only a few. The software programs may containinstructions executable by the various components of the controller 406of the system 400.

For example, memory may comprise read-only memory (ROM), random-accessmemory (RAM), dynamic RAM (DRAM), Double-Data-Rate DRAM (DDR-RAM),synchronous DRAM (SDRAM), static RAM (SRAM), programmable ROM (PROM),erasable programmable ROM (EPROM), electrically erasable programmableROM (EEPROM), flash memory (e.g., NOR or NAND flash memory), contentaddressable memory (CAM), polymer memory (e.g., ferroelectric polymermemory), phase-change memory (e.g., ovonic memory), ferroelectricmemory, silicon-oxide-nitride-oxide-silicon (SONOS) memory, disk memory(e.g., floppy disk, hard drive, optical disk, magnetic disk), or card(e.g., magnetic card, optical card), or any other type of media suitablefor storing information.

In one embodiment, the memory may contain an instruction set, in theform of a file for executing a method of generating one or more timinglibraries as described herein. The instruction set may be stored in anyacceptable form of machine-readable instructions, including source codeor various appropriate programming languages. Some examples ofprogramming languages that may be used to store the instruction setcomprise, but are not limited to: Java, C, C++, C#, Python, Objective-C,Visual Basic, or .NET programming. In some embodiments a compiler orinterpreter is comprised to convert the instruction set into machineexecutable code for execution by the processor.

In some embodiments, the I/O interface may comprise any suitablemechanism or component to at least enable a user to provide input (i.e.,test/request and or test/normal modes, etc.) to the controller 112 ofthe PUF generator 100 and the controller 112 to provide output controlto the other components of the PUF generator 100 (e.g., PUF cell array102, shifted registers 128, storage registers 120, etc.).

In some embodiments, the PUF generator 100 further comprises a BIST(Built-in Self Test) engine 130 and a lock box 132. The BIST engine 130allows the PUF generator 100 to tests its functionality aftermanufacturing for quality control in a cost effective fashion and at alow complexity. In some embodiments, the BIST engine 130 is automatedreceiving testing instructions through the controller 112. In someembodiments, the BIST engine 130 is also coupled to the controller 112,shifted registers 128 and masking registers 124 to provide feedbackbased on the test results, for example number of critical bit cells andnumber of stable bit cells, etc., which are discussed in further detailin FIG. 7. In some embodiments, the PUF output can be transmittedthrough a first port 134 for internal uses. In certain embodiments, thePUF output can be encrypted by a public key in the lock box 132 andtransmitted to a server through a second port 136 for external uses.

During testing, an initial PUF output from the plurality of bit cells ofthe PUF cell array 102 is generated, it is first stored in the storageregisters 120. In some embodiments, the storage registers 120 can beimplemented with any type of on-chip memory design, including on-chipSRAMs. In some embodiments, the storage register 120 comprises on-chipmemory array that contains the same number of bits as the number of bitcells in the PUF cell array 102 of the PUF generator 100. For example,if the PUF cell array comprises 200 bit cells, the storage registerscomprises 200 bits. During an evaluation process, a second PUF outputfrom the bit cells of the PUF cell array 102 is generated either byinjecting noise to create a “stressed” operation condition or bychanging operational conditions (i.e., temperature and operationalvoltage) on the plurality of bit cells in the PUF cell array 102. Thesecond PUF output is then compared to the initial PUF output in acompare circuit 122 (i.e., a XOR gate). Unstable bit cells withdifferent logical states in the two PUF outputs during the evaluationprocess are then identified and their addresses are stored in maskingregisters 124. This evaluation process repeats to acquire multiple PUFoutputs during multiple iterations under the same or different stressedoperation conditions (e.g., noises, temperature, voltage, etc.). Themasking map comprising a map of stable and unstable bit cells identifiedby introducing noises to the plurality of bit cells in the PUF cellarray 102 and the golden map comprising a map of stable and unstable bitcells identified by changing operation conditions to the plurality ofbit cells in the PUF cell array 102 can be obtained and compared in theBIST engine 130. Faulty PUF generators are then discarded and PUFgenerators that pass the test is then used to generate a PUF signature.

During a normal operation to generate a PUF signature using a devicethat passes the afore-described test, the controller 112 switches fromthe testing mode to the normal operation mode. In some embodiments, themasking registers 124 are then directly coupled to the masking 126 andthe shifted registers 128, which selects stable bit cells that are notmarked by the masking registers 124 from a PUF output directly from thePUF cell array 102 and their logical states as the PUF signature. Insome embodiments, the PUF signature can be transmitted through the firstport 134 for internal uses or through the second port 136 afterencrypted in the lock box 132 for external uses. In some embodiments,the PUF signature comprises an N-bit response and the initial PUFsignature comprises an M-bit response, wherein N<M, N and M are positiveintegers. For example, referring to FIG. 1 again, there are 200 bitcells in the PUF cell array and 128 bit cells identified during testingare stable and used as the PUF signature.

FIG. 2 illustrates an exemplary circuit diagram of a PUF cell array 102comprising a plurality of bit cells, in accordance with some embodimentsof present disclosure. In some embodiments, the PUF cell array 102includes a plurality of bit cells 201-1, 201-2, 201-3, 201-4, 201-5,201-6, 201-7, 201-8, and up to 201-9. Although only 9 bit cells areshown, any desired number of bit cells may be included in the PUF cellarray 102 while remaining within the scope of the present disclosure. Asdescribed above, the bit cells 201-1, 201-2, 201-3, 201-4, 201-5, 201-6,201-7, 201-8, and 201-9 are arranged in a column-row configuration. Morespecifically, in some embodiments, the PUF cell array 102 includes bitlines (BL's) 202-1, 202-2, and 202-3 arranged in parallel, bit line bars(BLB's) 203-1, 203-2, and 203-3 also arranged in parallel, word lines(WL's) 206-1, 206-2, and 206-3, and word line bars (WLB's) 207-1, 207-2and 207-3. The WL's and WLB's are arranged in parallel orthogonally tothe BL's and BLB's. In some embodiments, WL's 206 is coupled to thecorresponding WLB's 207. In some embodiments, the PUF cell array 102also includes positive supply voltage power (bit voltage) 204-1, 204-2,and 204-3, and reference/ground voltage (zero voltage) 205-1, 205-2 and205-3. As such, the PUF cell array 102 may include a first plurality ofcolumns (e.g, arranged vertically), a second plurality of rows (e.g.,arranged horizontally), wherein each column includes a respective pairof BL 202, BLB 203, power supply voltage 204, reference/ground voltage205, and each row includes a respective WL 206 and a respective WLB 207.In the illustrated embodiments, the PUF cell array 102 may also includePUF output 208-1, 208-2, and 208-3, and PUF output bar 209-1, 209-2, and209-3, which are directly coupled to storage nodes in the bit cellthrough a respective inverter. Further, the PUF cell array 102 may alsoinclude bit pre-charge line (BPC) 210-1, 210-2 and 210-3, which is usedto enable or disable the power supply voltage 204 to cross-coupledinverters of the bit cell, which are discussed in detail in FIG. 4.

For example, as shown in the illustrated embodiment of FIG. 2A, the PUFcell array 102 includes columns “A,” “B,” and “C,” and rows “a,” “b,”and “c,” wherein column A includes respective BL 202-1, BLB 203-1, powersupply voltage 204-1 and reference/ground voltage 205-1; column Bincludes respective BL 202-2, BLB 203-2, power supply voltage 204-2 andreference/ground voltage 205-2; column C includes respective BL 202-3,BLB 203-3, power supply voltage 204-3 and reference/ground voltage205-3; row a includes a respective WL 206-1, WLB 207-1, BPC 210-1, PUFoutput 208-1, PUF output bar 209-1; row b includes a respective WL206-2, WLB 207-2, BPC 210-2, PUF output 208-2, PUF output bar 209-2; androw c includes a respective WL 206-3, WLB 207-3, BPC 210-3, PUF output208-3, PUF output bar 209-3.

Moreover, each column includes one or more bit cells that are eachcoupled to the column's respective BL and BLB, a different separate WL,WLB, BPC, PUF output, and PUF output bar. For example, column A includesbit cells 200-1, 200-4, and 200-7, wherein the bit cells 200-1, 200-4,and 200-7 are each coupled to the BL 202-1, BLB 203-1, power supplyvoltage 204-1, reference/ground voltage 205-1, WL's 206-1, 206-2, and206-3, WLB's 207-1, 207-2, and 207-3, BPC's 210-1, 210-2, and 210-3, PUFoutput 208-1, 208-2, and 208-3; and PUF output bar 209-1, 209-2, and209-3, respectively; column B includes bit cells 200-2, 200-5, and200-8, wherein the bit cells 200-2, 200-5, and 200-8 are each coupled tothe BL 202-2, BLB 203-2, power supply voltage 204-2, reference/groundvoltage 205-2, WL's 206-1, 206-2, and 206-3, WLB's 207-1, 207-2, and207-3, BPC's 210-1, 210-2, and 210-3, PUF output 208-1, 208-2, and208-3; and PUF output bar 209-1, 209-2, and 209-3, respectively, andcolumn C includes bit cells 200-3, 200-6, and 200-9, wherein the bitcells 200-3, 200-6, and 200-9 are each coupled to the BL 202-3, BLB203-3, power supply voltage 204-3, reference/ground voltage 205-3, WL's206-1, 206-2, and 206-3, WLB's 207-1, 207-2, and 207-3, BPC's 210-1,210-2, and 210-3, PUF output 208-1, 208-2, and 208-3; and PUF output bar209-1, 209-2, and 209-3, respectively.

As described above, each bit cell of the PUF cell array 102 (e.g.,201-1, 200-2, 201-3, 201-4, 200-5, 201-6, 200-7, 201-8, 201-9, etc.) mayinclude a plurality of transistors (e.g., six MOSFET's for a 6T-SRAM bitcell, eight MOSFET's for an 8T-SRAM bit, three MOSFET's for a 3T-DRAMbit, twelve MOSFET's for a 12T-SRAM bit, three MOSFET's for a 3-T DRAMbit, etc.). In some embodiments, a logical state stored in each bit cellmay be written to the bit cell by applying either a high state (i.e., alogical “1”) or a low state (i.e., a logical “0”) through acorresponding BL, BLB, WL, and WLB. In some embodiments, a stablelogical state of a bit cell can be achieved after stabilizing from ametastable logical state due to intrinsic differences in the bit cell(e.g., intrinsic strength differences between back-to-back coupledinverters in SRAM based bit cells, or intrinsic differences in currentleakage rates in DRAM based bit cells, etc.). It should be also notedthat FIG. 2 is only an example for illustration purposes and is notintended to be limiting. The type of signal lines in a PUF cell array102 in in this present disclosure can be arranged in different waysdepending on the circuit layout design and types of bit cells used inthe array. For example, the PUF output 208 and PUF output bar 209 can bearranged in parallel to the BL 202 and BLB 203. For another example, theWLB 207, BPC 210, or PUF output bar 209 may not be necessary in a PUFcell array 102 that comprises a plurality of 2-T DRAM bit cells.

FIG. 3 illustrates an exemplary circuit diagram of a bit cell 300 thatis implemented as a 12-T SRAM bit cell, in accordance with someembodiments of the present disclosure. The bit cell 300 includes 12transistors: M1 310, M2 311, M3 312, M4 313, M5 314, M6 315, M7 382, M8383, M9 384, M10 385, M11 386, and M12 387. In some embodiments, thetransistors M7 382 and M8 383 are enable transistors; the transistors M1310 and M6 315 are access transistors.

In some embodiments, the transistors M2 311 and M3 312 are formed as afirst inverter 320 on the left and the transistors M4 313 and M5 314 areformed as a second inverter 330 on the right wherein the first andsecond inverters 320/330 are cross-coupled to each other. Morespecifically, source terminal of the transistor M2 311 is coupled withdrain terminal of the transistor M3 312 at a storage node (SN) 350.Similarly, source terminal of the transistor M4 313 is coupled withdrain terminal of the transistor M5 314 at a storage node bar (SNB) 360.Gate terminals of the transistors M2 311 and M3 312 are coupled togetherat node 370, while gate terminals of the transistors M4 313 and M5 314are coupled together at node 380. Drain terminals of transistors M2 311and M4 313 are coupled to source terminals of enable transistors M7 382and M8 383 at nodes 390 and 391, respectively. In some embodiments, thenodes 390/391 are coupled together. In some embodiments, there is onlyone enable transistor between the coupled nodes 390/391 and the powersupply voltage 204. Drain terminals of enable transistors M7 382 and M8383 are coupled to a power supply voltage 204. Source terminals oftransistors M3 312 and M5 314 are coupled to reference/ground voltage205. Gate terminals of the transistors M7 382 and M8 383 are coupledtogether and further electrically connected to a bit pre-charge line(BPC) 210.

Further, node 370 of the first inverter 320 is coupled to SNB 360 andnode 380 of the second inverter 330 is coupled to SN 350. Thetransistors M1 310 and M6 315 are typically referred to as accesstransistors of the bit cell 300. The first inverter 320 is coupled todrain terminal of the transistor M1 310 at SN 350, and the secondinverter 330 is coupled to drain terminal of the transistor M6 315 atSNB 360. In addition to being coupled to the cross-coupled inverters320/330, the transistors M1 310 and M6 315 are both coupled to the BL202/WL 206 and BLB 203/WLB 207, respectively. Specifically, gateterminals of the access transistors M1 310 and M6 315 are coupled to WL206 and WLB 207, respectively; and source terminals of the accesstransistors M1 310 and M6 315 are coupled to BL 202 and BLB 203,respectively. In the illustrated embodiment, BL 202 and BLB 203 arecoupled together to ground. In some embodiments, WL 206 and WLB 207 maybe coupled together.

Further, SN 350 and SNB 360 are coupled to the PUF output 208 and PUFoutput bar 209 through a third inverter 388 and a fourth inverter 389,respectively. Specifically, the third inverter 388 and the fourthinverter 389 each comprises two transistors, i.e., M9 384 and M10 385for the third inverter 388, and M11 386 and M12 387 for the fourthinverter 389. Gate terminals of transistors M9 384 and M10 385 arecoupled together to SN 350 and gate terminals of transistors M11 386 andM12 387 are coupled together to SNB 360. Source terminals of transistorsM9 384 and M11 386 are coupled to drain terminals of transistors M10 385and M12 387 and further to the PUF output 208 and the PUF output bar209, respectively. Drain terminals of transistors M9 384 and M11 386 arecoupled to the power supply voltage 204. Source terminals of transistorsM10 385 and M12 387 are coupled to the reference/ground voltage 205.

In some embodiments, the transistors M1 310, M3 312, M5 314, M6 315, M10385, and M12 387 each includes an NMOS transistor, and the transistorsM2 311, M4 313, M7 382, M8 383, M9 384, and M11 386 each includes a PMOStransistor. Although the illustrated embodiments of FIG. 3 shows thatM1-M12 are either NMOS or PMOS transistors, any of a variety oftransistors or devices that are suitable for use in a memory device maybe implemented as at least one of M1-M12 such as, for example, a bipolarjunction transistor (BJT), a high-electron mobility transistor (HEMT),etc.

FIG. 4 illustrates an exemplary delay circuit 400 to inject noise tointernal nodes of bit cells 300, in accordance with some embodiments ofthe present disclosure. In the illustrated embodiments, the delaycircuit 400 comprises 6 delay elements 402, 3 4-channel multiplexers(MUX) 406 (e.g., 406-1, 406-2, and 406-3), and 3 inverter trees 408(e.g., 408-1, 408-2, and 408-3). Outputs of the 3 4-channel MUXs 406(i.e., 406-1, 406-2 and 406-3) are each coupled to 3 tunable delaystages 454, 456 and 458, which are connected in series to furthercontrol the time delay of signals applied on each of the outputs (i.e.,BPC 210, WL 206 and WLB 207). Specifically, a first 4-channel MUX 406-1is coupled to a first tunable delay stage 454-1, a second tunable delaystage 456-1, and a third tunable delay stage 458-1; a second 4-channelMUX 406-2 is coupled to a fourth tunable delay stage 454-2, a fifthtunable delay stage 456-2, and a sixth tunable delay stage 458-2; and athird 4-channel MUX 406-3 is coupled to a seventh tunable delay stage454-3, an eighth tunable delay stage 456-3, and a ninth tunable delaystage 458-3, in accordance with the illustrated embodiment.

In the illustrated embodiments, the 9 tunable delay stages 454-1, 456-1,458-1, 454-2, 456-2, 458-2, 454-3, 456-3, and 458-3 each comprises a2-channel MUX 432 (i.e., 432-1, 432-2, 432-3, 432-4, 432-5, 432-6,432-7, 432-8, and 432-9). The 9 2-channel MUXs 432 each comprises 2inputs, I0 and I1 and 1 data select line A, in the illustratedembodiment. In some embodiments, 2 inputs, I0 and I1 correspond to 2logical values on the data select line 0 and 1, respectively. In someembodiments, inputs I0 of the 9 2-channel MUXs 432 are each coupled tozero delay element 402 and inputs I1 of the 9 2-channel MUXs 432 areeach coupled to at least one delay element 402. Specifically, inputs I1of the 2-channel MUXs 432-1, 432-4, and 432-7 are each coupled to 1delay element 402; inputs I1 of the 2-channel MUXs 432-2, 432-5 and432-8 are each coupled to 2 delay elements 402; and inputs I1 of the2-channel MUXs 432-3, 432-6 and 432-9 are each coupled to 4 delayelements 402, in accordance with the illustrated embodiment. Further,inputs of the tunable delay stages 454-1, 454-2, and 454-3 are eachcoupled to the output of 4-channel MUXs 406-1, 406-2 and 406-3,respectively; the inputs of the tunable delay stages 456-1, 456-2 and456-3 are each coupled to the outputs of the 2-channel MUXs 432-1, 432-4and 432-7, respectively, and the inputs of the tunable delay stages458-1, 458-2, and 458-3 are each coupled to the outputs of the 2-channelMUXs 432-2, 432-5 and 432-8, respectively; and the outputs of the2-channel MUXs 432-3, 432-6 and 432-9 are each coupled to an invertertree 408-1, 408-2 and 408-3, respectively, in accordance with theillustrated embodiment. In the illustrated embodiment, data select linesA of the 2-channel MUXs 432-1, 432-2, 432-3, 432-4, 432-5, 432-6, 432-7,432-8, and 432-9 are each coupled to 0, 0, 1, STa0, STa1, STa2, STb0,STb1, and STb2, respectively.

In the illustrated embodiments, the 3 4-channel MUX 406 each comprises 4inputs, I0, I1, I2, I3 and 2 data select lines A and B, in theillustrated embodiment. In some embodiments, 4 inputs, I0, I1, I2 and I3correspond to 4 logical values on the data select lines 00, 01, 10 and11, respectively. In some embodiments, inputs I0 of the 4-channel MUXs406-2 and 406-3 are each coupled to 6 delay elements 402; inputs I1 ofthe 4-channel MUXs 406-2 and 406-3 are each coupled to 5 delay elements402; inputs I2 of the 4-channel MUXs 406-2 and 406-3 are each coupled to4 delay element 402, and inputs I3 of the 4-channel MUXs 406-2 and 406-3are each coupled to no delay element. In the illustrated embodiments,the 4-channel MUXs 406-2 and 406-3 share the same delay elements 402.The 4-channel MUX 406-2 and 406-3, and their coupled delay elements arefurther coupled to a “start” input through a delay element 402. Furtherin the illustrated embodiment, all 4 inputs of the 4-channel MUX 406-1are coupled to the input “start” through 8 delay elements 402. In someother embodiments, all 4 inputs of the 4-channel MUX 406-1 are grounded.Further, outputs from the inverter trees 408-1, 408-2, and 408-3 arecoupled to the BPC 210, WL 206, and WLB 207, respectively. In someembodiments, the select lines A of the 9 2-channel MUXs and select linesAB of the 3 4-channel MUXs are coupled to the controller 112 whichcontrols the relative timing between signals on the BPC 210, WL 206 andWLB 207.

FIG. 4 illustrate an exemplary delay circuit to inject noise to internalnodes 350/360 of bit cells 300, in accordance with some embodiments ofthe present disclosure. This is, of course, merely an example and is notintended to be limiting. Any types of delay circuit that can control therelative timing on signal lines of the bit cell with back-to-backcoupled inverters to introduce noises to the internal nodes are withinthe scope of this invention. For example, inputs of the 2-channel MUXs432 and 4-channel MUXs 406 may couple with different numbers of delayelements 402. For another example, the MUXs may comprise a differentnumber of inputs and select lines to provide a desired time delay toeach of the lines including WL 206, WLB 207 and BPC 210. It should bealso noted that the delay circuit 400 is an exemplary method tointroduce noises into bit cells such as bit cells 300 presented in FIG.3 and is not intended to be limiting. Device and method to introducenoises depend on the technology of the bit cell used in the PUF cellarray 102 and are within the scope of this invention. For example,noises can be introduced in the power supply voltage 204 andreference/ground voltage 205 using a ring oscillator.

FIG. 5 illustrates waveforms 500 of signals provided by a delay circuit400 to a bit cell 300 of a PUF cell array 102, in accordance with someembodiments of the present disclosure. During a reset phase, the WL(start_1a) 206/WLB (start_1b) 207 are both pulled up, the accesstransistors M1 310 and M6 315 are turned on, which allow a discharge ofthe SN 350 and SNB 360 to GND, pre-charging the bit cell with metastablelogical states on the SN 350 and SNB 360. When the SN 350 and SNB 360are pulled down to GND by turning on the access transistors M1 310 andM6 315, the two cross-coupled inverters 320/330 without a power supplyallow “0”s stored on the SN 350 and SNB 360. During a normal operationphase to generate a PUF output, the WL (start_1a) 206/WLB (start_1b) 207are both pulled down at the same time at t1 which turns off the accesstransistors M1 310 and M6 315, and the BPC (start_2) 210 is then pulleddown at t5, which is separated from the end of the pulling-down of theWL (start_1a) 206/WLB (start_1b) 207 by a time gap 502 (i.e., t5−t1).Pulling down the voltage level on the BPC (start_2) 210 turns on theenable transistors M7 382 and M8 383 and results in an increasing ofvoltage levels on the nodes 390 and 391, which then enable thecross-coupled inverters 320/330. Pulling down the WL (start_1a) 206/WLB(start_1b) 207 at the same time t1 is configured by setting up theselect lines (i.e., SMa1/SMa0 and SMb1/SMb0) on the second and third4-channel MUXs 406-2 and 406-3 at the same value through the controller112. In some embodiments, the SMa1=SMa0=SMb1=SMb0=1, so that the pullingdown applied on the BPC (start_2) 210 has the longest delay relative tothe pulling down applied on the WL (start_1a) 206/WLB (start_1b) 207,giving the same tunable delay configuration for each lines. Themetastable logical states cannot be sustained once the cross-coupledinverters 320/330 are enabled due to its particular back-to-backconfiguration of the two inverters and the strength difference betweenthe two cross-coupled inverters 320 and 330 caused by intrinsic processvariations during fabrication. The small mismatch of strength in thecross-coupled inverters 320/330 will be eventually amplified by thepositive feedback of the cross-coupled inverters 320/330 and willeventually generate either logic “1” or logic “0”. Since the design ishighly symmetric and the only randomness is caused by the fabricationprocess of the transistors in the cross-coupled inverters, the binaryoutput of the logical states, when the plurality of bit cells 300 arestabilized after being enabled by the enable transistors, are unique,random and non-traceable. Finally, the logical states on SN 350 and SNB360 are further inverted by the respective inverters 388 and 389 beforeread out on to the PUF output 208 and PUF output bar 209, respectively.

Various types of noise can be injected during an evaluation process inorder to identify unstable bit cells to generate a mask array. During anevaluation phase, the time gap 502 can be reduced and an overlap betweenthe pulling down signal on WL 206 or WLB 20 and the pulling down signalon the BPC 210 can be introduced. Further, discharge pathways are addedto SN 350 and SNB 360, when the cross-coupled inverters 320/330 arepartially enabled by the enable transistors M7 382 and M8 383 and whenthe access transistors are not completely turned off, this results indifferent intermediate voltage levels on SN 350/SNB 360. Therefore, thedischarge pathways due to the overlap of the pulling-down of the WL206/207 and the pulling-down of the BPC 210 provide additionalrandomness, i.e., asymmetric intermediate voltage values between groundand V_(DD) on the storage nodes. In some embodiments, the WL 206 and WLB207 can be separately controlled by the delay circuit 400 illustrated inFIG. 4. In some embodiments, the pulling down on WL 207 is configured byapplying values on select lines (SMb1 and SMb0) of the third 4-channelMUX 406-3 that are different from the values on the select lines (SMa1and SMa0) of the second 4-channel MUX 406-2. In the illustratedembodiments, the WLB 207 is pulled down at t2, t3, and t4 when SMb1/SMb0are set at 10, 01 and 00 and SMa1/SMa0 are set to 11, respectively. Inthe illustrated embodiment, when the WLB 207 is pulled down at t4, thepulling down signal on the WLB 207 starts to overlap with the pullingdown signal on the BPC 210. To further increase the overlap, one can usethe tunable delays 454-3, 456-3 and 458-3 by applying proper values onthe data select lines of the 2-channel MUXs 432-7, 432-8 and 432-9.

Similarly, the WL 206 is pulled down at t2, t3, and t4 when SMa1/SMa0are set at 10, 01 and 00 and SMb1/SMb0 are set to 11, respectively. Inthe illustrated embodiment, when the WL 206 is pulled down at t4, thepulling down signal on the WL 206 starts to overlap with the pullingdown signal on the BPC 210. To further increase the overlap, one can usethe tunable delays 454-2, 456-2 and 458-2 by applying proper values onthe data select lines of the 2-channel MUXs 432-4, 432-5 and 432-6.

Depending on the timing when the WL 206 or the WLB 207 is pulled down,asymmetry in voltage levels on the two storage nodes 350 and 360,respectively can be introduced and during the evaluation process.Similarly, the logical states on the two storage nodes are further readout through the inverters 388 and 389 to the PUF output 208 and PUFoutput bar 209 and further to the storage registers 120 and thecomparing circuit 122 in order to identify the unstable bit cells.Different relative timings between the pulling-down signals on the WL206, WLB 207 and the BPC 210 can be changed in a controllable fashionduring the evaluation phase in order to control the voltage levels onthe to two internal dynamic nodes 350/360 and are within the scope ofthis invention. Through multiple iterations by changing the relativetiming between signals on these lines, unstable bit cells 300 in one ormore selected rows in the PUF cell array 102 can be identified and amasking map containing addresses of the unstable bit cells can begenerated.

FIG. 6 illustrates a flow chart of a method 600 to generate a maskingmap using a PUF cell array 102 comprising a plurality of bit cells 300,in accordance with some embodiments of present disclosure. In someembodiments, the operations of method 600 are performed by therespective components illustrated in FIGS. 1-4. For purposes ofdiscussion, the following embodiment of the method 600 will be describedin conjunction with FIGS. 1-4. The illustrated embodiment of the method600 is merely an example for generating a masking map. Therefore, itshould be understood that any of a variety of operations may be omitted,re-sequenced, and/or added while remaining within the scope of thepresent disclosure.

The method 600 starts with operation 602 in which two access transistorsM1 310/M6 315 are turned on and two enable transistors M7 382/M8 383 areturned off to write first metastable logical states to two storage nodesSN 350 and SNB 360 in each of a plurality of bit cells 300, according tosome embodiments. In some embodiments, turning off the two enabletransistors M7 382/M8 383 disables the cross-coupled inverters 320/330and turning on the access transistors M1 310/M6 315 is able to write 0'son the two storage nodes SN 350 and SNB 360 coupled to the respectivetwo access transistors M1 310/M6 315.

The method 600 continues to operation 604 in which a first accesstransistors M1 310 and a second access transistor M6 315 are turned offat a first time and a second time, respectively. In some embodiments,the two access transistors are turned off at the same time under anormal operation condition (i.e., the first time equals to the secondtime). In some embodiments, turning off the M1 310/M6 315 are configuredby pulling down the voltage on a WL 206 and a WLB 207 which are coupledto gate terminals of the access transistors M1 310/M6 315. In someembodiments, the controller 112 is configured to pull down the voltageon the WL 206 and WLB 207 separately with a controlled time delay. Insome embodiments, the first time and the second time is controlled by adelay circuit 400 in the controller 112 as shown in FIG. 4. In someother embodiments, the WL 206 and WLB 207 are coupled together and thuspulled down at the same time (i.e., the first time=the second time) by adelay circuit 400 in the controller 112 without intentional delay duringa normal operation condition.

The method 600 continues to operation 606 in which the two enabletransistors M7 382/M8 383 are turned on at a third time to evaluatesecond logical states on the two storage nodes SN 350/SNB 360 in each ofthe plurality of bit cells 300. In some embodiments, the third time isconfigured by a delay circuit 400 in the controller 112, as shown inFIG. 4. In some embodiments, a normal operation condition, wherein nooverlap between the pulling down of the BPC 210 and the pulling down ofthe WL 206/WLB 207 as shown in FIG. 6 can be configured by configuringthe longest delay on the BPC 210. For example, data select lines A/B ofthe 4-channel MUXs 406-1, and 406-2 are configured as 00, and 11,respectively, wherein the two pulling-down signals on the WL 206 and theBPC 210 are separated by 7 delay elements. Similarly, data select linesA/B of the 4-channel MUX 406-3 in FIG. 4 can be configured as 11 toachieve the longest delay (i.e., 7 delay elements) and to prevent anyoverlap between the pulling down of the WLB 207 and the pulling down ofthe BPC 210. In some embodiments, each delay element provides a timedelay on the order of pico seconds.

The method 600 continues to operation 608 in which a first PUF output isgenerated. In some embodiments, the first PUF output is generated withthe longest delay between the pulling-downs of the WL 206/WLB 207 whichare at the same time and the pulling-down of the BPC 210 under normaloperational conditions (e.g., room temperature and normal V_(DD)).

The method 600 continues to operation 610 in which the first PUF outputgenerated is stored in storage registers 120. In some embodiments, thestorage registers 120 can be implemented with any type of on-chip memorydesign, including on-chip SRAMs. In some embodiments, the storageregister 120 comprises on-chip memory array that contains the samenumber of bits as the number of bit cells in the PUF cell array 102 ofthe PUF generator 100. In some embodiments, the storage registers 120comprise the same number of bits as the number of bit cells in the PUFcell array 102.

Before the method 600 continues to operation 612, operations 602-608 arerepeated to generate a second PUF outputs at different first and secondtime for turning on the first and second transistors in each of theplurality of bit cells 300. In some embodiments, the change of the firstand/or the second time for turning on the first and/or the second accesstransistors can introduce a signal overlap between the pulling-downsignals as shown in FIG. 5, which can result in intermediate voltagelevels on the two storage nodes SN 350/SNB 360, according to someembodiments. By applying different inputs to the multi-channel MUXs(i.e., 4-channel MUXs and 2-channel MUXs in FIG. 5) different levels ofoverlaps between the pulling down signals can be created and therefore,different intermediate voltage levels on the two storage nodes SN350/SNB 360 can be configured. The second PUF output under a firststressed operation conditions can be then generated.

The method 600 continues to operation 612 the second PUF outputgenerated under the first stressed operation condition is then comparedwith the previously stored PUF output (e.g., the first PUF outputgenerated under a normal operation condition) to identify at least onebit cell with different logical states in the two PUF outputs. In someembodiments, each bit of the PUF output from the bit cells in at leastone selected rows of the PUF cell array 102 is compared. In someembodiments, the storage registers 120 store only one PUF output. Insome embodiments, a bit cell with different logical states in the twoPUF outputs is identified as an unstable (hereinafter “U”) bit cell. Insome embodiments, an address of the unstable bit cell in the PUF cellarray is then stored in a bit of masking registers 124.

Through repeated operation 602, 604, 606, 608, 610 and 612, multiple PUFoutputs under stressed operation conditions by tuning the time delaysusing a delay circuit can be generated and compared so as to identifyunstable bit cells 300 in the PUF cell array 102. In some embodiments, 6stressed conditions can be created to determine 6 PUF outputs, bycomparing which unstable bit cells 300 can be identified. To createthese 6 stressed conditions, different inputs on the data select linesA/B of the 3 4-channel MUXs (i.e., 406-1, 406-2 and 406-3) areconfigured by the controller 112, according to some embodiments. In someembodiments, SMa=00 and SMb=11 are configured for the 4-channel MUXs406-2 and 406-3 to obtain the second PUF output under the first stressedcondition; SMa=01 and SMb=11 are configured for the 4-channel MUXs 406-2and 406-3 to obtain a third PUF output under a second stressedcondition; SMa=10 and SMb=1 are configured for the 4-channel MUXs 406-2and 406-3 to obtain a fourth PUF output under a third stressedcondition; SMa=11 and SMb=00 are configured for the 4-channel MUXs 406-2and 406-3 to obtain a fifth PUF output under a fourth stressedcondition; SMa=11 and SMb=01 are configured for the 4-channel MUXs 406-2and 406-3 to obtain a sixth PUF output under a fifth stressed condition;and SMa=11 and SMb=10 are configured for the 4-channel MUXs 406-2 and406-3 to obtain a seventh PUF output under a sixth stressed condition.In some embodiments, the data select lines A/B of the first 4-channelMUX 406-1 are configured as a constant value (e.g., 00). It should benoted, this is just an example is not intended to be limiting. Anytesting sequences by changing the order of setting values on the dataselect lines A/B on the multi-channel MUXs and introducing more finecontrol of the overlap using the tunable delay lines as shown in FIG. 4are within the scope of this invention.

The method 600 continues to operation 614 in which a masking map isgenerated. In some embodiments, the masking map comprises an address ofthe at least one unstable bit cell in the plurality of bit cells 300 ofthe PUF cell array 102.

FIG. 7 illustrates a flow chart of a method 700 to generate a golden mapusing a PUF cell array 102 comprising a plurality of bit cells 300, inaccordance with some embodiments of the present disclosure. In someembodiments, the operations of method 700 are performed by therespective components illustrated in FIGS. 1-4. For purposes ofdiscussion, the following embodiment of the method 700 will be describedin conjunction with FIGS. 1-4. The illustrated embodiment of the method700 is merely an example for generating a masking map. Therefore, itshould be understood that any of a variety of operations may be omitted,re-sequenced, and/or added while remaining within the scope of thepresent disclosure.

The method 700 starts with operation 702 in which two access transistorsM1 310/M6 315 are turned on and two enable transistors M7 382/M8 383 areturned off to write first metastable logical states to two storage nodesSN 350 and SNB 360 in each of a plurality of bit cells 300, according tosome embodiments. In some embodiments, turning off the two enabletransistors M7 382/M8 383 disables the cross-coupled inverters 320/330and turning on the access transistors M1 310/M6 315 is able to write 0'son the two storage nodes SN 350 and SNB 360 coupled to the respectivetwo access transistors M1 310/M6 315.

The method 700 continues to operation 704 in which the two accesstransistors M1 310/M6 315 are turned off at the same time under a firstoperation condition, respectively. In some embodiments, the firstoperation condition comprises a temperature and an operational voltage(i.e., V_(DD) and V_(SS)). In some embodiments, turning off the M1310/M6 315 are configured by pulling down the voltage on a WL 206 and aWLB 207 which are coupled to gate terminals of the access transistors M1310/M6 315. In some embodiments, the controller 112 is configured topull down the voltage on the WL 206 and WLB 207 simultaneously. In someother embodiments, the WL 206 and WLB 207 are coupled together.

The method 700 continues to operation 706 in which the two enabletransistors M7 382/M8 383 are turned on at a second time under the firstoperation condition to evaluate second logical states on the two storagenodes SN 350/SNB 360 in each of the plurality of bit cells 300. In someembodiments, the second time is configured by the controller 112 (e.g.,a delay circuit 400 as shown in FIG. 4). In some embodiments, there isnot overlap between the pulling down signals on the WL 206/WLB 207 andthe pulling down signals on the BPC 210. For example, data select linesA/B of the 4-channel MUXs 406-1, and 406-2 are configured as 00, and 11,respectively, wherein the two pulling-down signals on the WL 206 and theBPC 210 are separated by 7 delay elements. Similarly, data select linesA/B of the 4-channel MUX 406-3 in FIG. 4 can be configured as 11 toachieve the longest delay (i.e., 7 delay elements) and to prevent anyoverlap between the pulling down of the WLB 207 and the pulling down ofthe BPC 210. In some embodiments, each delay element provides a timedelay on the order of pico seconds. In some other embodiments, the sizeof transistors in the inverters can be tuned to provide fine-tuning ofthe time delay on the order of a fraction of a pico-second.

The method 700 continues to operation 708 in which a first PUF output isgenerated. In some embodiments, the first PUF output is generated withthe longest delay between the pulling-downs of the WL 206/WLB 207 whichare at the same time and the pulling-down of the BPC 210 under normaloperational conditions (e.g., room temperature and normal V_(DD)).

The method 700 continues to operation 710 in which the first PUF outputgenerated is stored in storage registers 120. In some embodiments, thestorage registers 120 can be implemented with any type of on-chip memorydesign, including on-chip SRAMs. In some embodiments, the storageregister 120 comprises on-chip memory array that contains the samenumber of bits as the number of bit cells in the PUF cell array 102 ofthe PUF generator 100. In some embodiments, the storage registers 120comprise the same number of bits as the number of bit cells in the PUFcell array 102.

Before the method 700 continues to operation 712, operations 702-708 arerepeated to generate a second PUF outputs at a different operationcondition (i.e., a different temperature and/or a differentV_(DD)/V_(SS)). The second PUF output under a second operation conditioncan be then generated.

The method 700 continues to operation 712 the second PUF outputgenerated under the second operation condition is then compared with thepreviously stored PUF output (e.g., the first PUF output generated underthe first operation condition) to identify at least one bit cell withdifferent logical states in the two PUF outputs. In some embodiments,each bit of the PUF output from the bit cells in at least one selectedrows of the PUF cell array 102 is compared. In some embodiments, thestorage registers 120 store only one PUF output. In some embodiments, abit cell with different logical states in the two PUF outputs isidentified as an unstable (hereinafter “U”) bit cell. In someembodiments, an address of the unstable bit cell in the PUF cell arrayis then stored in a bit of masking registers 124.

Through repeated operation 702, 704, 706, 708, 710 and 712, multiple PUFoutputs under different operation conditions by operating at differenttemperatures (T) and/or operational voltage values (V) can be generatedand compared so as to identify unstable bit cells 300 in the PUF cellarray 102. In some embodiments, the different temperatures is selectedin a typical temperature range of −40˜125 degrees Celsius (° C.). Insome embodiments, the operation voltage values are within ±10% nominalvalues of the normal operation condition (i.e., V_(DD)=0.9 Volt), whichis in a range of 0.81˜0.99 Volt. In some embodiments, 6 stressedconditions can be created to determine 6 PUF outputs. In someembodiments, adjusting the temperature can be obtained by an externaltemperature control unit (not shown) comprising a heated stage, atemperature sensing element, and a control circuit, known to the oneskilled in the art. To create these 6 operational conditions, 125°C./0.81 V, −40° C./0.81 V, 125° C./0.9 V, −40° C./0.9 V, 125° C./0.99 V,and −40° C./0.99 V, are configured by the controller 112 and theexternal temperature control unit, according to some embodiments. Itshould be noted, this is just an example is not intended to be limiting.Any testing sequences by changing the order of setting values or anynumber of tests at any other temperatures/voltage levels is within thescope of this invention.

The method 700 continues to operation 714 in which a golden map isgenerated. In some embodiments, the golden map comprises an address ofthe at least one unstable bit cell in the plurality of bit cells 300 ofthe PUF cell array 102.

FIG. 8 illustrates a flow chart of a method 800 for a PUF generatorcharacterization, in accordance with some embodiments of presentdisclosure. In some embodiments, the operations of method 800 areperformed by the respective components illustrated in FIGS. 1-4, themethod 600 in FIG. 6 and the method 700 in FIG. 7. For purposes ofdiscussion, the following embodiment of the method 800 will be describedin conjunction with FIGS. 1-4, 6 and 7. The illustrated embodiment ofthe method 800 is merely an example. Therefore, it should be understoodthat any of a variety of operations may be omitted, re-sequenced, and/oradded while remaining within the scope of the present disclosure.

The method 800 starts with operation 802 in which functionality of ani-th PUF generator 100 is verified. In some embodiments, thefunctionality of the i-th PUF generator is tested by writing apredetermined logical state to and reading an output logical state fromeach of the plurality of bit cells in the PUF cell array 102 todetermine if the PUF cell array is defective. In some embodiments, a PUFcell array 102 is determined to be defective if the number of bit cellsof which the output logical states are not consistent with thepredetermined logical states is greater than a predetermined thresholdvalue. For example, referring to the bit cell 300 shown in FIG. 3 aspart of a PUF generator 100 shown in FIG. 1, the functionality of thePUF generator 100 is tested by testing the functionality of each of theplurality of bit cells 300 in the PUF cell array 102. In someembodiments, the functionality of a bit cell 300 is tested by firstpulling up a voltage level on the BPC 210 which turns off two enabletransistors M7 382/M8 383 and two cross-coupled inverters 320/330 aredisabled. Then, a voltage level on the WL 206 is then pulled up whichturns on the first access transistor M1 310 and a voltage level on SN350 is pulled down to GND, writing a logic state 0 to SN 350.Simultaneously, a voltage level on the WLB 207 is then pulled down whichturns off the second access transistor M6 315. Then, the voltage levelon the BPC 210 is pulled down, which turns on the two enable transistorsM7 382/M8 383 and the two cross-coupled inverters 320/330 are enabled.Since SN 350 is forced to logic 0, which further forces a logic 1 on SNB360 and a logic 0 is then read on a PUF output bar 209 after beinginverted by a second output inverter 389. If the logic state read on thePUF output bar 209 is not 0, the bit cell 300 tested is determined asdefective.

In some embodiments, the functionality of a bit cell 300 is furthertested by pulling up a voltage level on the BPC 210 which turns off twoenable transistors M7 382/M8 383 and two cross-coupled inverters 320/330are disabled. Then, a voltage level on the WL 206 is then pulled downwhich turns off the first access transistor M1 310. Simultaneously, avoltage level on the WLB 207 is then pulled up which turns on the secondaccess transistor M6 315 and a voltage level on SNB 360 is pulled downto GND, writing a logic state 0 to SNB 360. Then, the voltage level onthe BPC 210 is pulled down, which turns on the two enable transistors M7382/M8 383 and the two cross-coupled inverters 320/330 are enabled.Since SNB 350 is forced to logic 0, which further forces a logic 1 on SN350 and a logic 1 is then read on a PUF output bar 209 after beinginverted by the second output inverter 389. If the logic state read onthe PUF output bar 209 is not 1, the bit cell 300 tested is determinedas defective.

It should be noted that the method discussed above to test thefunctionality of a bit cell is just an example and is not intend to belimiting. Different methods to write a predetermined logical state andread an output logical state can be used according to the type of bitcells and are within the scope of this invention.

The method 800 continues to operation 804 in which a number of defectivebit cells in a PUF cell array 102 of a PUF generator 100 is determinedand compared to a predefined threshold value. In some embodiments, theplurality of bit cells in the PUF cell array 102 of a PUF generator 100are tested by a controller 112. In some embodiments, PUT outputs fromthe functionality test are output directly to the BIST 130 to determinea total number of defective bit cells. In some embodiments, a margin canbe added to prolong the life time of a PUF generator. For example, if a128-bits PUF signature is required as a qualified PUF generator, atleast one extra bits can be added as an aging margin. The number of bitsthat is required as the aging margin is predetermined and can bedetermined by a counter. If the number of defective bit cells that failthe functionality test is greater than the predetermined threshold, thePUF generator 100 is then discarded from further tests. In someembodiments, this predetermined threshold number of defective bit cellsis zero. In other words, if one or more defective bit cells isdetermined in a PUF generator, the PUF generators is discarded. This isbecause a defective bit cell is typically a “short” in the PUF cellarray, which causes increased power consumption. In some otherembodiments, if the number of defective bit cells are greater than 10%of the total number of bit cells in the PUF cell array 102 of a PUFgenerator 100, the PUF generator 100 is discarded for further tests.This predetermined number is just an example and is not intended to belimiting. The predetermined number can be defined by application orcustomers, which is within the scope of this invention.

Similarly, if the number of defective bit cells that fail thefunctionality test is less than the predetermined threshold (i.e., thepredetermined threshold >0), the PUF generator 100 is then further movedfor a next quality-control test. In some embodiments, this determiningprocess is performed by the BIST engine and addresses of defective bitcells are stored in the BIST engine. In some embodiments, the defectivebit cells together with unusable bit cells in a critical masking map,which are discussed in further detail in FIG. 9 below, are used tofilter PUF outputs to determine a PUF signature.

The method 800 continues to operation 806 in which a golden map isgenerated on PUF generators 100 that pass the functionality test. Insome embodiments, the golden map is generated using the method 700 asshown in FIG. 7 using a PUF cell array 102 consisting a plurality of bitcells 300 as shown in FIG. 3. It should be noted that operations toidentify unstable bit at different temperatures and operational voltagelevels can be different according the type of bit cells, which arewithin the scope of this invention. For example, in a leakage-based DRAMbit cell, a flipped logic state caused by leakage currents is determinedat different temperatures and operational voltages to determine a goldenmap. In some embodiments, different conditions includes differentoperation temperatures and voltages. In some embodiments, differenttemperature is controlled by a temperature control unit. In someembodiments, operational voltage is controlled by the controller 112.

The method 800 continues to operation 808 in which a masking map isgenerated on PUF generators 100 that pass the functionality test. Insome embodiments, the masking map is generated using the method 600 asshown in FIG. 6 using a PUF cell array 102 consisting a plurality of bitcells 300 as shown in FIG. 3. It should be noted that different stressedoperation conditions to identify unstable bit cells using differenttechniques can be used according to the type of bit cells and are withinthe scope of this invention. For example, in a leakage-based DRAM bitcell, one can use a noise injector, such as a ring oscillator tointroduce signal oscillation to the voltage lines.

The method 800 continues to operation 810 in which the golden mapobtained from operation 806 is compared with the masking map obtained inoperation 808 to obtain a critical masking map. In some embodiments, anusable (U) bit cell in the critical masking map is a bit cell that arestable in both the masking map and the golden map; a non-usable (N) bitcell in the critical masking map is a bit cell that is unstable in themasking array; and a critical (C) bit cell in the critical masking mapis a bit cell that is stable in the masking map but not stable in thegolden map.

FIG. 9 illustrates an exemplary masking map 902 and golden map 904comparison process to obtain a critical masking map 908, in accordancewith some embodiments of the present disclosure. In the illustratedembodiments, the masking map 902 comprises 24 bits and the golden map904 comprises 24 bits. Although only 24 bits are shown, each of themasking map 902 and the golden map 904 can comprise different numbers ofbits which are determined by the number of bit cells in the PUF cellarray 102 and are within the scope of this invention. The masking map902 comprises 8 unstable bit cells and 16 stable bit cells, and thegolden map 904 comprises 7 unstable bit cells and 17 stable bit cells.After being compared in a comparing circuit 906, the critical maskingmap 908 comprising 24 bits can be obtained. In the illustratedembodiments, there are 13 usable bit cells, 8 unusable bit cells and 3critical bit cells.

The method 800 continues to operation 812 in which the number criticalbit cells from the operation 810 is determined and compared to zero. Ifthe number of critical bit cells in the critical masking map isdetermined to be not zero (e.g., 3 critical bit cells in the criticalmasking map 908), the method 800 continues with operation 808 byobtaining a second masking map at different stressed operationconditions. Then, the method 800 continues with operation 810 and 812 tocompare the second masking map with the golden map in order to furtherdetermine the number of critical bit cells in a second critical maskingmap. This process continues until the number of critical bit cells inthe critical masking map is determined to be zero. In some embodiments,when the number of critical cells is not able to be reduced to zeroafter a predefined time of testing or a certain numbers of iterations ofdifferent testing conditions, and further there is not enough usablecells (i.e., the number of useable cells is less than a desirablesignature bits number), then the PUF generator under test is marked asFAILED. In some embodiments, the amount of time used to test or thenumber of iterations for testing is determined by a predetermined costfactor in order to balance the yield and cost.

The method 800 continues to operation 814 in which a number of usablebit cells are determined and compared to a predefined threshold value.In some embodiments, if the number of usable bit cells in the criticalmasking map that does not contain any critical bit cell is greater thanthe predefined threshold value, the PUF generator 100 passes thequality-control tests and is determined as a qualified PUF generator.Similarly, if the number of usable bit cells in the critical masking mapthat does not contain any critical bit cell is less than the predefinedthreshold value, the PUF generator 100 fails the aforementionedquality-control tests and is determined as an unqualified PUF generator.In some embodiments, a percentage (P) of a total number of bit cellsthat have logic 0 or 1 in the total number of usable bit cells in thecritical masking map is also determined. In some other embodiments, aqualified PUF generator also provides a P value in a range of 45-55%.

FIG. 10 illustrates a flow chart of a method 1000 to generate a PUFsignature using a qualified PUF generator that passes the qualitycontrol tests, in accordance with some embodiments of presentdisclosure. In some embodiments, the operations of method 1000 areperformed by the respective components illustrated in FIGS. 1-4, themethods 600, 700 and 800 illustrated in FIGS. 6-8. For purposes ofdiscussion, the following embodiment of the method 800 will be describedin conjunction with FIGS. 1-4 and 6-8. The illustrated embodiment of themethod 1000 is merely an example. Therefore, it should be understoodthat any of a variety of operations may be omitted, re-sequenced, and/oradded while remaining within the scope of the present disclosure.

The method 1000 starts with operation 1002 in which a critical maskingmap is generated. In some embodiments, the critical masking map isgenerated using methods 600, 700 and 800 described above. In someembodiments, the critical masking map comprises no critical bit cellsand a percentage of usable bit cells with logic 1 or 0 in the totalnumber of usable bit cells of the critical masking map equals to 45-55%.

The method 1000 continues to operation 1004 in which a PUF output undernormal operation conditions is generated. In some embodiments, the PUFoutput is generated using operations described in the method 600. Itshould be noted that different methods to generate a PUF output undernormal operation conditions can be used depending on the types of bitcells and are within the scope of this invention.

The method 1000 continues to operation 1006 in which a PUF outputobtained under normal operation conditions is filtered by the criticalmasking map to generate a PUF signature. In some embodiments, bit cellsthat are marked with “1” is used to identify unstable bit cells.

FIG. 11 illustrates a flow chart of a method 1100 to securely transfer aPUF signature to a server from a qualified PUF generator that passes aquality control tests, in accordance with some embodiments of presentdisclosure. In some embodiments, the operations of method 1100 areperformed by the respective components illustrated in FIGS. 1-4, themethods 600-1000 illustrated in FIGS. 6-10. For purposes of discussion,the following embodiment of the method 800 will be described inconjunction with FIGS. 1-4 and 6-10. The illustrated embodiment of themethod 1100 is merely an example. Therefore, it should be understoodthat any of a variety of operations may be omitted, re-sequenced, and/oradded while remaining within the scope of the present disclosure.

The method 1100 starts with operation 1102 in which a PUF signature isgenerated. In some embodiments, the PUF signature is generated using themethod 1000 shown in FIG. 10 in combination with methods 600-800 shownin FIGS. 6-8.

The method 1100 continues with operation 1104 in which the PUF signatureencrypted. In some embodiments, the PUF signature is transferred to alock box 132 which also receives a public key for encryption of the PUFsignature. In some embodiments, the lock box 132 comprises an asymmetricencrypter. In some embodiments, the lock box 132 contains one of thefollowing asymmetric key encryption algorithm, such as for example RSA(Rivest-Shamir-Adleman), DSA (Digital Signature Algorithm), ECC(Elliptic Curve Cryptography), ElGamal algarithms, etc. In someembodiments, the lock box 132 comprises a processor and a controllogical circuit (both are not shown in FIG. 1) in order to encrypt thePUF signature to be transmitted to a server in response to a requestreceived from the server at the controller 112.

The method 1100 continues to operation 1106 in which the encrypted PUFsignature is transferred to the server through a dedicated I/O port 136for external uses. In some embodiments, the encrypted PUF signature mayalso comprises helper data which is used to recover noisy PUFinformation. In some embodiments, the server also receives and decryptsthe encrypted PUF signature using an asymmetric encrypter which containsa private key. In some embodiments, only authorized servers withmatching private key can perform the decryption and obtain the PUFsignature.

In one embodiment, a testing method for physical unclonable function(PUF) generator includes: verifying a functionality of a PUF generatorby writing preconfigured logical states to and reading output logicalstates from a plurality of bit cells in a PUF cell array; determining afirst number of first bit cells in the PUF cell array, wherein theoutput logical states of the first bit cells are different from thepreconfigured logical states; if the first number of first bit cells isless than a first predetermined number, generating a first map under afirst set of operation conditions using the PUF generator and a maskingcircuit, wherein the first map comprises at least one stable bit cellsand at least one unstable bit cell; generating a second map under asecond set of operation conditions using the PUF generator and themasking circuit, wherein the second map comprises at least one stablebit cells and at least one unstable bit cell; determining a secondnumber of second bit cells, wherein the second bit cells are stable inthe first map and unstable in the second map using a Built-in Self Test(BIST) engine; if the second number of second bit cells is determined tobe zero, determining a third number of third bit cells using the BISTengine, wherein the third bit cells are stable in the first map andstable in the second map; and if the third number of third bit cells aregreater than a second preconfigured number, the PUF generator isdetermined as a qualified PUF generator.

In another embodiment, a physical unclonable function (PUF) generatorincludes: a PUF cell array comprising a plurality of bit cells, whereinthe plurality of bit cells each provides a logical state; a controllercoupled to the PUF cell array, wherein the controller is configured toprovide a first set and a second set of operation conditions to the PUFcell array; a masking circuit configured to determine a first map and asecond map, wherein the first and second maps determined under the firstand second set of operation conditions, respectively, each comprises aplurality of logical states of the plurality of bit cells in the PUFcell array, wherein wherein the first and second maps each comprises atleast one stable bit cells and at least one unstable bit cell; and aBuilt-In Self Test (BIST) engine, configured to determine a first numberof first bit cells and a second number of second bit cells, wherein thefirst bit cells are stable in the first map and unstable in the secondmap, wherein the second bit cells are stable in the first map and stablein the second map.

Yet, in another embodiment, a physical unclonable function (PUF)generator includes: a PUF cell array comprising a plurality of bitcells, wherein the plurality of bit cells each comprises twocross-coupled inverters; at least two access transistors, at least oneenable transistor, and at least two storage nodes, wherein the at leasttwo storage nodes are pre-configured with substantially the samevoltages allowing each of the plurality of bit cells having a firstmetastable logical state; a controller coupled to the PUF cell array,wherein the controller comprising a delay circuit is configured toprovide a first set and a second set of operation conditions to the PUFcell array; a masking circuit configured to determine a first map and asecond map, wherein the first and second maps determined under the firstand second set of operation conditions, respectively, each comprises aplurality of logical states of the plurality of bit cells in the PUFcell array, wherein wherein the first and second maps each comprises atleast one stable bit cells and at least one unstable bit cell; and aBuilt-In Self Test (BIST) engine, configured to determine a first numberof first bit cells and a second number of second bit cells, wherein thefirst bit cells are stable in the first map and unstable in the secondmap, wherein the second bit cells are stable in the first map and stablein the second map.

The foregoing outlines features of several embodiments so that thoseordinary skilled in the art may better understand the aspects of thepresent disclosure. Those skilled in the art should appreciate that theymay readily use the present disclosure as a basis for designing ormodifying other processes and structures for carrying out the samepurposes and/or achieving the same advantages of the embodimentsintroduced herein. Those skilled in the art should also realize thatsuch equivalent constructions do not depart from the spirit and scope ofthe present disclosure, and that they may make various changes,substitutions, and alterations herein without departing from the spiritand scope of the present disclosure.

What is claimed is:
 1. A method for testing a physical unclonablefunction (PUF) generator, the method comprising: verifying afunctionality of a PUF generator by writing preconfigured logical statesto and reading output logical states from a plurality of bit cells in aPUF cell array; determining a first number of first bit cells in the PUFcell array, wherein the output logical states of the first bit cells aredifferent from the preconfigured logical states; if the first number offirst bit cells is less than a first predetermined number, generating afirst map under a first set of operation conditions using the PUFgenerator and a masking circuit, wherein the first map comprises atleast one stable bit cells and at least one unstable bit cell, whereinthe first set of operation conditions comprises a first operatingtemperature and a first operating voltage applied to the PUF cell array;generating a second map under a second set of operation conditions usingthe PUF generator and the masking circuit, wherein the second mapcomprises at least one stable bit cells and at least one unstable bitcell, wherein the second set of operation conditions comprises a secondoperating temperature and a second operating voltage applied to the PUFcell array; determining a second number of second bit cells, wherein thesecond bit cells are stable in the first map and unstable in the secondmap using a Built-in Self Test (BIST) engine; if the second number ofsecond bit cells is determined to be zero, determining a third number ofthird bit cells using the BIST engine, wherein the third bit cells arestable in the first map and stable in the second map; and if the thirdnumber of third bit cells are greater than a second preconfigurednumber, the PUF generator is determined as a qualified PUF generatorthat meets a predefined quality criterion.
 2. The method of claim 1,wherein the first set of operation conditions comprises stressedoperation conditions, wherein the stressed operation conditions areconfigured by a controller.
 3. The method of claim 2, wherein thecontroller comprises a delay circuit configured to tune relative timingbetween signals to provide the stressed operation conditions.
 4. Themethod of claim 1, wherein the second set of operation conditionscomprises different temperatures and operational voltage levelsconfigured by the controller.
 5. The method of claim 1, furthercomprising: if the second number of second bit cells is determined to benot zero, re-generating the second map under a third set of operationconditions until the second number of second bit cells is determined tobe zero; and if the third number of the third bit cells are less thanthe second preconfigured number, the PUF generator is determined as anunqualified PUF generator.
 6. The method of claim 1, wherein the maskingcircuit further comprises: storage registers configured to store a firstPUF output from the PUF cell array; a comparing circuit configured tocompare a second PUF output with the first PUF output in the storageregisters to identify the at least one unstable bit cell in the firstand second maps, wherein logical states of the unstable bit cell in thefirst and the second PUF outputs are different; masking registersconfigured to store an address of the at least one unstable bit cell; amasking to exclude the logical state of the at least one unstable bitcell to generate the PUF signature; and shifted registers configured toselect the third bit cells to generate the PUF signature.
 7. The methodof claim 1, wherein the PUF generator further comprises: a Built-In SelfTest (BIST) engine configured to compare the first and second maps todetermine the third number of third bit cells; and a lock box configuredto encrypt the PUF signature before transmitting to a server.
 8. Aphysical unclonable function (PUF) generator comprising: a PUF cellarray comprising a plurality of bit cells, wherein the plurality of bitcells each provides a logical state; a controller coupled to the PUFcell array, wherein the controller is configured to provide a first setand a second set of operation conditions to the PUF cell array, whereinthe first set of operation conditions comprises a first operatingtemperature and a first operating voltage applied to the PUF cell arrayand the second set of operation conditions comprises a second operatingtemperature and a second operating voltage applied to the PUF cellarray; a masking circuit configured to determine a first map and asecond map, wherein the first and second maps determined under the firstand second set of operation conditions, respectively, each comprises aplurality of logical states of the plurality of bit cells in the PUFcell array, wherein the first and second maps each comprises at leastone stable bit cells and at least one unstable bit cell; and a Built-InSelf Test (BIST) engine, configured to determine a first number of firstbit cells and a second number of second bit cells, wherein the first bitcells are stable in the first map and unstable in the second map,wherein the second bit cells are stable in the first map and stable inthe second map, wherein if the second number of second bit cells isgreater than a predetermined threshold, the PUF generator is determinedas a qualified PUF generator that meets a predefined quality criterionbased at least on the second number being greater than the predeterminedthreshold.
 9. The PUF generator of claim 8, wherein the first set ofoperation conditions comprises stressed operation conditions and thesecond set of operation conditions comprises different temperatures andoperational voltage levels.
 10. The PUF generator of claim 8, whereinthe masking circuit further comprises: storage registers configured tostore a first PUF output from the PUF cell array; a comparing circuitconfigured to compare a second PUF output with the first PUF output inthe storage registers to identify the at least one unstable bit cell inthe first and second maps, wherein logical states of the unstable bitcell in the first and the second PUF outputs are different; maskingregisters configured to store an address of the at least one unstablebit cell; a masking to exclude the logical state of the at least oneunstable bit cell to generate a PUF signature; and shifted registersconfigured to select the second bit cells to generate the PUF signature.11. The PUF generator of claim 8, wherein the controller is furtherconfigured to write preconfigured logical states to the plurality of bitcells in a PUF cell array read output logical states from the pluralityof bit cells in a PUF cell array; and determine a third number of thirdbit cells in the PUF cell array, wherein the output logical states ofthe third bit cells are different from the preconfigured logical states.12. The PUF generator of claim 11, wherein the controller is furtherconfigured to determine the first number of first bit cells, if thethird number of the third bit cells in the PUF cell array is less than afirst predetermined number, determine the second number of second bitcells, if the first number of first bit cells is determined to be zero;re-generate the second map under a third set of operation conditionsuntil the first number of first bit cells is determined to be zero; anddetermine a qualification of a PUF generator based on a comparison ofthe second number of the second bit cells and a second preconfigurednumber.
 13. The PUF generator of claim 8, further comprising a lock boxconfigured to encrypt the PUF signature before transmitting to a server.14. A physical unclonable function (PUF) generator comprising: a PUFcell array comprising a plurality of bit cells, wherein the plurality ofbit cells each comprises two cross-coupled inverters; at least twoaccess transistors, at least one enable transistor, and at least twostorage nodes, wherein the at least two storage nodes are pre-configuredwith the same voltages allowing each of the plurality of bit cellshaving a first metastable logical state; a controller coupled to the PUFcell array, wherein the controller comprising a delay circuit isconfigured to provide a first set and a second set of operationconditions to the PUF cell array, wherein the first set of operationconditions comprises a first operating temperature and a first operatingvoltage applied to the PUF cell array and the second set of operationconditions comprises a second operating temperature and a secondoperating voltage applied to the PUF cell array; a masking circuitconfigured to determine a first map and a second map, wherein the firstand second maps determined under the first and second set of operationconditions, respectively, each comprises a plurality of logical statesof the plurality of bit cells in the PUF cell array, wherein the firstand second maps each comprises at least one stable bit cells and atleast one unstable bit cell; and a Built-In Self Test (BIST) engine,configured to determine a first number of first bit cells and a secondnumber of second bit cells, wherein the first bit cells are stable inthe first map and unstable in the second map, wherein the second bitcells are stable in the first map and stable in the second map, whereinif the second number of second bit cells is greater than a predeterminedthreshold, the PUF generator is determined as a qualified PUF generatorthat meets a predefined quality criterion based at least on the secondnumber being greater than the predetermined threshold.
 15. The PUFgenerator of claim 14, wherein the at least two access transistors arecoupled between the delay circuit and the at least two correspondingstorage nodes.
 16. The PUF generator of claim 14, wherein the at leasttwo access transistors each comprise an NMOS transistor and the at leastone enable transistor comprises a PMOS transistor.
 17. The PUF generatorof claim 14, wherein the masking circuit further comprises: storageregisters configured to store a first PUF output from the PUF cellarray; a comparing circuit configured to compare a second PUF outputwith the first PUF output in the storage registers to identify the atleast one unstable bit cell in the first and second maps, whereinlogical states of the unstable bit cell in the first and the second PUFoutputs are different; masking registers configured to store an addressof the at least one unstable bit cell; a masking to exclude the logicalstate of the at least one unstable bit cell to generate a PUF signature;and shifted registers configured to select the second bit cells togenerate the PUF signature.
 18. The PUF generator of claim 14, whereinthe controller is further configured to: write preconfigured logicalstates to the plurality of bit cells in a PUF cell array read outputlogical states from the plurality of bit cells in a PUF cell array;determine a third number of third bit cells in the PUF cell array,wherein the output logical states of the third bit cells are differentfrom the preconfigured logical states; determine the first number offirst bit cells, if the third number of the third bit cells in the PUFcell array is less than a first predetermined number; determine thesecond number of second bit cells, if the first number of first bitcells is determined to be zero; re-generate the second map under a thirdset of operation conditions until the first number of first bit cells isdetermined to be zero; and determine a qualification of a PUF generatorbased on a comparison of the second number of the second bit cells and asecond preconfigured number.
 19. The PUF generator of claim 14, whereinthe first set of operation conditions comprises stressed operationconditions and the second set of operation conditions comprisesdifferent temperatures and operational voltage levels.
 20. The PUFgenerator of claim 8, further comprising a lock box configured toencrypt the PUF signature before transmitting to a server.